The present invention relates to a device for generating a practical random number sequence and its application device.
Random numbers are highly necessary for such purposes as signature generation using public key encryption technology, key generation for performing secret communication, and stream cipher technology.
However, it is unrealistic to try to use true random numbers in such purposes, and pseudorandom numbers (hereinafter simply referred to as random numbers), which are generated by a pseudorandom number generating method or by a device using the method, are practically used.
When used for encryption, the pseudorandom number is necessary to meet the requirement of properties related to security. More specifically, the pseudorandom number is unpredictable and the initial value for determining the random number could not be derived from the generated random number. Further, in order to practically use the pseudorandom number generating method or generator, high speed processing is necessary in the software or hardware implementation. It is also necessary to achieve efficiency from the point of view of implementation cost. That is, the number of necessary gates is small for hardware implementation, and the number of steps and the necessary memory area are small for software implementation.
Preferably, a general purpose encryption algorithm meets all such criteria at a high level.
An example of the pseudorandom number generation technology, which can be implemented in either a software platform or a hardware platform, is described in Patent document 1 (U.S. Pat. No. 7,224,796). The pseudorandom number generation technology described in Patent document 1 achieves efficient processing and high security in the software implementation, by a large-scale high-density substitution configured with a combination of a small nonlinear substitution and a maximum distance separable code defined over finite field.